export function removeDuplicateBuildings(str: string) {
    // 正则表达式用于匹配栋数，假设栋数由数字加“栋”组成  
    const buildingRegex = /(\d+栋)/g;
    // 创建一个Map来跟踪已经遇到的栋数  
    const buildings = new Map();
    // 初始化结果字符串  
    let result = '';
    // 使用replace函数遍历字符串，并替换重复的栋数  
    const replacedStr = str.replace(buildingRegex, (match, offset) => {
        // 检查这个栋数是否已经在Map中存在  
        if (!buildings.has(match)) {
            // 如果不存在，则添加到Map中  
            buildings.set(match, true);
            // 将栋数添加到结果字符串中  
            result += match;
        }
        // 替换为空的字符串，以从原始字符串中移除重复的栋数  
        return '';
    });
    // 将剩余的非栋数部分添加到结果字符串中  
    result += replacedStr.replace(buildingRegex, '');
    return result;
}



export function removeDuplicateDong(str: string) {
    // 正则表达式匹配“栋”或“栋栋”，并确保每个栋数后只有一个“栋”  
    const regex = /(\d+)栋栋|(\d+)栋(?!\d*栋)/g;
    // 用于存储已经遇到的栋数的集合  
    const encounteredBuildings = new Set();
    // 用于存储最终结果的数组  
    const resultParts = [];
    // 分割字符串为数组，以逗号为分隔符  
    const parts = str.split(',');
    // 遍历每一部分  
    for (const part of parts) {
        // 去除前后空格  
        const trimmedPart = part.trim();
        // 匹配栋数  
        let match;
        while ((match = regex.exec(trimmedPart)) !== null) {
            const building = match[0].replace(/栋栋$/, '栋'); // 如果匹配到“栋栋”，替换为“栋”  

            // 如果这个栋数还没有被遇到过，则添加到结果中  
            if (!encounteredBuildings.has(building)) {
                resultParts.push(building);
                encounteredBuildings.add(building);
            }
        }
    }

    // 将结果数组连接为字符串，并用逗号分隔  
    return resultParts.join(',');
}  